package java_test.extend_demo;

public class Penguin extends Animal {
    /**
     * 子类是不继承父类的构造器（构造方法或者构造函数）的，它只是调用（隐式或显式）。
     * 如果父类的构造器带有参数，则必须在子类的构造器中显式地通过 super 关键字调用父类的构造器并配以适当的参数列表。
     * 如果父类构造器没有参数，则在子类的构造器中不需要使用 super 关键字调用父类构造器，
     * 系统会自动调用父类的无参构造器。
     */
    public Penguin(String name, int id) {
        super(name, id);
        System.out.println(name + id);
    }

    public void eat() {
        System.out.println("dog : eat");
    }

    public void eatTest() {
        this.eat();   // this 调用自己的方法
        super.eat();  // super 调用父类方法
    }

    public static void main(String[] args) {
        Penguin Penguin = new Penguin("企鹅", 9);
        Penguin.introduction();
        Penguin.eatTest();

    }
}
